#ifndef _NE_KEY_FRAME_H_
#define _NE_KEY_FRAME_H_

#include <neinit.h>

namespace ne
{
    class AnimationTrack;

    class NEAPI KeyFrame
    {
        public:
            KeyFrame(const AnimationTrack *parent, const real time);

            virtual real getTime() const;

            virtual KeyFrame* clone(const AnimationTrack *newParent) const;

            virtual ~KeyFrame();

        private:
            KeyFrame();

            KeyFrame(const KeyFrame &keyFrame);

            KeyFrame& operator = (const KeyFrame &keyFrame);

        protected:
            real mTime;
            const AnimationTrack *mpParentTrack;
    };

    typedef std::vector<KeyFrame*> KeyFrameVector;
    typedef KeyFrameVector::iterator KeyFrameVectorIterator;
    typedef KeyFrameVector::const_iterator KeyFrameVectorConstIterator;
}

#endif
